package com.sqlcheck.service;

import com.sqlcheck.model.SqlStatement;

import java.nio.file.Path;
import java.util.List;

public interface JavaAnnotationAnalysisService {

    /**
     * 分析Java文件中的MyBatis和JPA注解，提取SQL语句
     * 
     * @param javaFilePath Java文件路径
     * @return SQL语句列表
     */
    List<SqlStatement> analyzeJavaFile(Path javaFilePath);

    /**
     * 分析整个目录下的Java文件
     * 
     * @param directoryPath 目录路径
     * @return SQL语句列表
     */
    List<SqlStatement> analyzeJavaDirectory(Path directoryPath);

    /**
     * 检查Java文件是否包含MyBatis或JPA注解
     * 
     * @param javaFilePath Java文件路径
     * @return 是否包含相关注解
     */
    boolean hasOrmAnnotations(Path javaFilePath);
}